﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;

namespace WeChat.Core.ExtraCore
{
    /// <summary>
    /// （推送）文本消息
    /// </summary>
    public class WeChatTextMessage : WeChatMessage
    {
        public WeChatTextMessage()
        {
            MsgType = TextMsg;
        }

        [JsonProperty(PropertyName = "text")]
        public PushMsgTextData Text { get; set; }

    }

    /// <summary>
    /// （推送）图片消息
    /// </summary>
    public class PushImageMessage : WeChatMessage
    {
        public PushImageMessage()
        {
            MsgType = ImageMsg;
        }

        [JsonProperty(PropertyName = "image")]
        public PushMsgImageData Image { get; set; }
    }

    /// <summary>
    /// （推送）语音消息
    /// </summary>
    public class PushVoiceMessage : WeChatMessage
    {
        public PushVoiceMessage()
        {
            MsgType = VoiceMsg;
        }

        /// <summary>
        /// 
        /// </summary>
        [JsonProperty(PropertyName = "voice")]
        public PushMsgVoiceData Voice { get; set; }
    }

    /// <summary>
    /// （推送）视频消息
    /// </summary>
    public class PushVideoMessage : WeChatMessage
    {
        public PushVideoMessage()
        {
            MsgType = VideoMsg;
        }

        /// <summary>
        /// 
        /// </summary>
        [JsonProperty(PropertyName = "video")]
        public PushMsgVideoData Video { get; set; }
    }

    /// <summary>
    /// （推送）音乐消息
    /// </summary>
    public class PushMusicMessage : WeChatMessage
    {
        public PushMusicMessage()
        {
            MsgType = MusicMsg;
        }

        /// <summary>
        /// 
        /// </summary>
        [JsonProperty(PropertyName = "music")]
        public PushMsgMusicData Music { get; set; }
    }

    /// <summary>
    /// (可选)图文消息
    /// </summary>
    public class PushNewsMessage : WeChatMessage
    {
        public PushNewsMessage()
        {
            MsgType = NewsMsg;
        }

        /// <summary>
        /// 
        /// </summary>
        [JsonProperty(PropertyName = "news")]
        public PushMsgNewsData News { get; set; }
    }
}
